/**
 * @file    PAR_ID_mng.h
 * @brief   参数管理
 * @author  Liuwei
 * @version 1.0.1
 * @date    2023-04-19
 * 
 * @copyright Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD
 * 
 * @par 修改日志:
 * <table>
 * <tr><th>Date       <th>Version   <th>Author   <th>Description
 * <tr><td>2023-04-19 <td>1.0.1     <td>Liuwei   <td>首次创建
 * </table>
 */
#ifndef __PAR_ID_MNG_H_
#define __PAR_ID_MNG_H_

/* File Includes -------------------------------------------------------------*/
#include <stdint.h>

/* Cplusplus -----------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif

/* Macro/Define/Typedef ------------------------------------------------------*/
#define PARAM_K_IS_VAILD(k)        ((k >= 7500ul)&&(k<13000ul))
#define PARAM_B_IS_VAILD(b)        ((b >= 100) &&(b<600))
#define PARAM_ZERO_VAILD(z)		   ((z >= -10.0f) &&(z < 10.0f))
#define PARAM_K_FCATOR             (0.0001)
/**@brief 存储精度 */
#define PARAM_TEMP_FACTOR          (0.1f)
#define PARAM_TEMP_OFFSET          (-50)
#define PARAM_CAP_FACTOR           (0.01f)
#define PARAM_CAP_OFFSET           (0)
#define PARAM_CURR_FACTOR          (0.1f)
#define PARAM_CURR_OFFSET          (0)
#define PARAM_BV_FACTOR            (0.01f)
#define PARAM_BV_OFFSET            (0)
#define PARAM_BLC_MODE_CHG         (0)
#define PARAM_BLC_MODE_STATIC      (1)

#define PARAM_RESET                (0x55)     /* 参数恢复默认 */
#define PARAM_CHECK                (0)        /* 检测参数 */

#define PARAM_SOC_CFG_EN           (0x05)
#define PARAM_FUNC_CFG_EN          (0x01)

#define PARAM_SOH_IS_VAILD(soh)    ((soh > 70) && (soh <= 110))

enum
{
	PARAM_TEMP ,   /*!< 温度 */
	PARAM_CAP  ,   /*!< 容量 */
	PARAM_CURR ,   /*!< 电流 */
	PARAM_BVOLT,   /*!< 总压 */
};

typedef enum
{
	FUNC_HOT_POS  = 0, 
	FUNC_BEEP_POS = 2,
	FUNC_VTD_POS = 4,
	FUNC_GPS_POS = 6,
	FUNC_NSOC_POS = 8,
	FUNC_RSOC_POS = 10,
	FUNC_MOSLED_POS = 12,
	FUNC_FENG_POS = 14,	
}func_bit;

typedef enum
{
	FUNC_SOC_STD   = 0, 
	FUNC_SOC_TRACE = 4,
}cap_alg_bit;

/* 校准参数缓冲区 */
enum
{
	/* @attention : 注释[x , y],x表示倍数系数 , y表示偏移量 ,实际值 = 数据 * x + y */
	PAR_ID_CB_CC_K ,         /*!<(00)充电电流校准系数K [0.0001 , 0] */
	PAR_ID_CB_CC_B ,         /*!<(01)充电电流校准系数B [0.01, -300] */
	PAR_ID_CB_DC_K ,         /*!<(02)放电电流校准系数K [0.0001 , 0] */
	PAR_ID_CB_DC_B ,         /*!<(03)放电电流校准系数B [0.01, -300] */
	PAR_ID_CB_CV01_K ,       /*!<(04)单体校准系数K [0.0001 , 0] */
	PAR_ID_CB_CV01_B ,       /*!<(05-35)单体校准系数B */
	/* [2~16]单体电压2~16校准系数 */
	PAR_ID_CB_BV_K = 36,     /*!<(36)总压校准系数K [0.0001 , 0] */
	PAR_ID_CB_BV_B ,         /*!<(37)总压校准系数B [0.01, -300] */
	PAR_ID_CB_CT_K  ,        /*!<(38)电芯温度校准系数K [0.01, -300] */
	PAR_ID_CB_CT_B  ,        /*!<(39~53)电芯温度校准系数B [0.01, -300] */
	
	PAR_ID_CB_L1_SOC = 54,   /*!<(54) 放电末端校准SOC值[1,0]% */
	PAR_ID_CB_L1_VOLT  ,     /*!<(55) 放电末端校准SOC对应的电压值[1,0]mV */
	PAR_ID_CB_L2_SOC   ,     /*!<(56) 放电末端校准SOC值[1,0]% */
	PAR_ID_CB_L2_VOLT  ,     /*!<(57) 放电末端校准SOC对应的电压值[1,0]mV */
	PAR_ID_CB_H1_SOC   ,     /*!<(58) 充电末端校准SOC值[1,0]% */
	PAR_ID_CB_H1_VOLT  ,     /*!<(59) 充电末端校准SOC对应的电压值[1,0]mV */
	PAR_ID_CB_H2_SOC   ,     /*!<(60) 充电末端校准SOC值[1,0]% */
	PAR_ID_CB_H2_VOLT  ,     /*!<(61) 充电末端校准SOC对应的电压值[1,0]mV */
	PAR_ID_CB_ZERO_SET ,     /*!<(62) 零飘值 [0.01,-300]*/
	PAR_ID_CB_CELL_NUM ,     /*!<(63) CELL NUM */
	PAR_ID_CB_RES_TYPE ,     /*!<(64) 采样电阻类型 */
	PAR_ID_CB_TEMP_NUM ,     /*!<(65) 温度个数 */
	PAR_ID_CB_RSD_066  ,     /*!<(66) 预留 */
	PAR_ID_CB_RSD_067  ,     /*!<(67) 预留 */
	PAR_ID_CB_RSD_068  ,     /*!<(68) 预留 */
	PAR_ID_CB_RSD_069  ,     /*!<(69) 预留 */
	PAR_ID_CB_RSD_070  ,     /*!<(70) 预留 */
	/* 单体过压参数 */
	PAR_ID_COV_ALM_VAL = 71, /*!<(71) 告警值 [1,0]mV*/               
	PAR_ID_COV_ALM_RCV  ,    /*!<(72) 告警恢复值[1,0]mV */
	PAR_ID_COV_ALM_DLY  ,    /*!<(73) 告警延时 [1,0]mS*/
	PAR_ID_COV_PRP_VAL  ,    /*!<(74) 保护值[1,0]mV  */
	PAR_ID_COV_PRP_RCV  ,    /*!<(75) 恢复值[1,0]mV */
	PAR_ID_COV_PRP_DLY  ,    /*!<(76) 保护延时 [1,0]mS*/
	/* 单体欠压参数 */
	PAR_ID_CUV_ALM_VAL  ,    /*!<(77) 告警值[1,0]mV   */ 
	PAR_ID_CUV_ALM_RCV  ,    /*!<(78) 告警恢复值[1,0]mV */              
	PAR_ID_CUV_ALM_DLY  ,    /*!<(79) 告警延时[1,0]mS */
	PAR_ID_CUV_PRP_VAL  ,    /*!<(80) 保护值[1,0]mV  */
	PAR_ID_CUV_PRP_RCV  ,    /*!<(81) 恢复值[1,0]mV */
	PAR_ID_CUV_PRP_DLY  ,    /*!<(82) 保护延时[1,0]mS */
	/* 总压过压参数 */
	PAR_ID_BOV_ALM_VAL  ,    /*!<(83) 告警值[1,0]mV   */               
	PAR_ID_BOV_ALM_RCV  ,    /*!<(84) 告警恢复值[1,0]mV */
	PAR_ID_BOV_ALM_DLY  ,    /*!<(85) 告警延时[1,0]mS */
	PAR_ID_BOV_PRP_VAL  ,    /*!<(86) 保护值[1,0]mV  */
	PAR_ID_BOV_PRP_RCV  ,    /*!<(87) 恢复值[1,0]mV */
	PAR_ID_BOV_PRP_DLY  ,    /*!<(88) 保护延时[1,0]mS */
	/* 总压欠压参数 */
	PAR_ID_BUV_ALM_VAL  ,    /*!<(89) 告警值[0.01,0]V */               
	PAR_ID_BUV_ALM_RCV  ,    /*!<(90) 告警恢复值[0.01,0]V */
	PAR_ID_BUV_ALM_DLY  ,    /*!<(91) 告警延时[1,0]mS */
	PAR_ID_BUV_PRP_VAL  ,    /*!<(92) 保护值[0.01,0]V  */
	PAR_ID_BUV_PRP_RCV  ,    /*!<(93) 恢复值[0.01,0]V */
	PAR_ID_BUV_PRP_DLY  ,    /*!<(94) 保护延时[1,0]mS */
	/* 充电过流参数 */
	PAR_ID_OCC_ALM_VAL  ,    /*!<(95) 告警值[0.1,0]A   */               
	PAR_ID_OCC_ALM_RCV  ,    /*!<(96) 告警恢复值[0.1,0]A*/
	PAR_ID_OCC_ALM_DLY  ,    /*!<(97) 告警延时[1,0]mS */
	PAR_ID_OCC_PRP_VAL  ,    /*!<(98) 保护值[0.1,0]A*/
    PAR_ID_OCC_PRP_DLY  ,    /*!<(99) 保护延时[1,0]mS */
	PAR_ID_OCC_RCV_DLY  ,    /*!<(100) 恢复值[1,0]S */
	PAR_ID_OCC_LOCK_TIMES ,  /*!<(101) 锁定次数 */
	/* 充电过流2参数 */
	PAR_ID_OCC2_PRP_VAL  ,   /*!<(102) 保护值[0.1,0]A*/
    PAR_ID_OCC2_PRP_DLY  ,   /*!<(103) 保护延时[1,0]mS*/
	PAR_ID_OCC2_RCV_DLY  ,   /*!<(104) 恢复值[1,0]S*/
	PAR_ID_OCC2_LOCK_TIMES , /*!<(105) 锁定次数 */
	/* 放电过流1参数 */
	PAR_ID_OCD1_ALM_VAL  ,   /*!<(106) 告警值[0.1,0]A   */               
	PAR_ID_OCD1_ALM_RCV  ,   /*!<(107) 告警恢复值[0.1,0]A*/
	PAR_ID_OCD1_ALM_DLY  ,   /*!<(108) 告警延时[1,0]mS */
	PAR_ID_OCD1_PRP_VAL  ,   /*!<(109) 保护值[0.1,0]A  */
    PAR_ID_OCD1_PRP_DLY  ,   /*!<(110) 保护延时[1,0]mS */
	PAR_ID_OCD1_RCV_DLY  ,   /*!<(111) 恢复值[1,0]S */
	PAR_ID_OCD1_LOCK_TIMES,  /*!<(112) 锁定次数 */
	/* 放电过流2参数 */
	PAR_ID_OCD2_PRP_VAL  ,   /*!<(113) 保护值  */
	PAR_ID_OCD2_PRP_DLY  ,   /*!<(114) 保护延时[1,0]mS */
	PAR_ID_OCD2_RCV_DLY  ,   /*!<(115) 恢复延时 S */
	PAR_ID_OCD2_LOCK_TIMES,  /*!<(116) 恢复值 */
	/* 充电过温参数 */
	PAR_ID_OTC_ALM_VAL  ,    /*!<(117) 告警值   */
	PAR_ID_OTC_ALM_RCV  ,    /*!<(118) 告警恢复值 */               
	PAR_ID_OTC_ALM_DLY  ,    /*!<(119) 告警延时[1,0]mS */
	PAR_ID_OTC_PRP_VAL  ,    /*!<(120) 保护值  */
	PAR_ID_OTC_PRP_RCV  ,    /*!<(121) 恢复值 */
	PAR_ID_OTC_PRP_DLY  ,    /*!<(122) 保护延时[1,0]mS */
	/* 充电欠温参数 */
	PAR_ID_UTC_ALM_VAL  ,    /*!<(123) 告警值   */ 
	PAR_ID_UTC_ALM_RCV  ,    /*!<(124) 告警恢复值 */             
	PAR_ID_UTC_ALM_DLY  ,    /*!<(125) 告警延时[1,0]mS */
	PAR_ID_UTC_PRP_VAL  ,    /*!<(126) 保护值  */
	PAR_ID_UTC_PRP_RCV  ,    /*!<(127) 恢复值 */
	PAR_ID_UTC_PRP_DLY  ,    /*!<(128) 保护延时[1,0]mS */
	/* 放电过温参数 */
	PAR_ID_OTD_ALM_VAL  ,    /*!<(129) 告警值   */  
	PAR_ID_OTD_ALM_RCV  ,    /*!<(130) 告警恢复值 */             
	PAR_ID_OTD_ALM_DLY  ,    /*!<(131) 告警延时[1,0]mS */
	PAR_ID_OTD_PRP_VAL  ,    /*!<(132) 保护值  */
	PAR_ID_OTD_PRP_RCV  ,    /*!<(133) 恢复值 */
	PAR_ID_OTD_PRP_DLY  ,    /*!<(134) 保护延时[1,0]mS */
	/* 放电欠温参数 */
	PAR_ID_UTD_ALM_VAL  ,    /*!<(135) 告警值   */
	PAR_ID_UTD_ALM_RCV  ,    /*!<(136) 告警恢复值 */               
	PAR_ID_UTD_ALM_DLY  ,    /*!<(137) 告警延时[1,0]mS */
	PAR_ID_UTD_PRP_VAL  ,    /*!<(138) 保护值  */
	PAR_ID_UTD_PRP_RCV  ,    /*!<(139) 恢复值 */
	PAR_ID_UTD_PRP_DLY  ,    /*!<(140) 保护延时[1,0]mS */

	/* 环境高温参数 */
	PAR_ID_OTE_ALM_VAL  ,    /*!<(141) 告警值   */ 
	PAR_ID_OTE_ALM_RCV  ,    /*!<(142) 告警恢复值 */              
	PAR_ID_OTE_ALM_DLY  ,    /*!<(143) 告警延时[1,0]mS */
	PAR_ID_OTE_PRP_VAL  ,    /*!<(144) 保护值  */
	PAR_ID_OTE_PRP_RCV  ,    /*!<(145) 恢复值 */
	PAR_ID_OTE_PRP_DLY  ,    /*!<(146) 保护延时[1,0]mS */
	/* 环境低温参数 */
	PAR_ID_UTE_ALM_VAL  ,    /*!<(147) 告警值   */ 
	PAR_ID_UTE_ALM_RCV  ,    /*!<(148) 告警恢复值 */              
	PAR_ID_UTE_ALM_DLY  ,    /*!<(149) 告警延时[1,0]mS */
	PAR_ID_UTE_PRP_VAL  ,    /*!<(150) 保护值  */
	PAR_ID_UTE_PRP_RCV  ,    /*!<(151) 恢复值 */
	PAR_ID_UTE_PRP_DLY  ,    /*!<(152) 保护延时[1,0]mS */
	/* MOS高温参数 */
	PAR_ID_OTM_ALM_VAL  ,    /*!<(153) 告警值   */ 
	PAR_ID_OTM_ALM_RCV  ,    /*!<(154) 告警恢复值 */              
	PAR_ID_OTM_ALM_DLY  ,    /*!<(155) 告警延时[1,0]mS */
	PAR_ID_OTM_PRP_VAL  ,    /*!<(156) 保护值  */
	PAR_ID_OTM_PRP_RCV  ,    /*!<(157) 恢复值 */
	PAR_ID_OTM_PRP_DLY  ,    /*!<(158) 保护延时[1,0]mS */
	/* 温差过大参数 */
	PAR_ID_TDIFF_ALM_VAL ,   /*!<(159) 告警值   */ 
	PAR_ID_TDIFF_ALM_RCV ,   /*!<(160) 告警恢复值 */              
	PAR_ID_TDIFF_ALM_DLY ,   /*!<(161) 告警延时[1,0]mS */
	PAR_ID_TDIFF_PRP_VAL ,   /*!<(162) 保护值  */
	PAR_ID_TDIFF_PRP_RCV ,   /*!<(163) 恢复值 */
	PAR_ID_TDIFF_PRP_DLY ,   /*!<(164) 保护延时[1,0]mS */
	/* 压差过大参数 */
	PAR_ID_VDIFF_ALM_VAL ,   /*!<(165) 告警值   */ 
	PAR_ID_VDIFF_ALM_RCV ,   /*!<(166) 告警恢复值 */             
	PAR_ID_VDIFF_ALM_DLY ,   /*!<(167) 告警延时[1,0]mS */
	PAR_ID_VDIFF_PRP_VAL ,   /*!<(168) 保护值  */
	PAR_ID_VDIFF_PRP_RCV ,   /*!<(169) 恢复值 */
	PAR_ID_VDIFF_PRP_DLY ,   /*!<(170) 保护延时[1,0]mS */
	/* SOC过低参数 */
	PAR_ID_SOCL_ALM_VAL  ,   /*!<(171) 告警值   */
	PAR_ID_SOCL_ALM_RCV  ,   /*!<(172) 告警恢复值 */               
	PAR_ID_SOCL_ALM_DLY  ,   /*!<(173) 告警延时[1,0]mS */
	PAR_ID_SOCL_PRP_VAL  ,   /*!<(174) 保护值  */
	PAR_ID_SOCL_PRP_RCV  ,   /*!<(175) 恢复值 */
	PAR_ID_SOCL_PRP_DLY  ,   /*!<(176) 保护延时[1,0]mS */
	PAR_ID_CAN_RATE      ,   /*!<(177) CAN波特率 */
	PAR_ID_RS485_RATE    ,   /*!<(178) RS485波特率 */
	
	PAR_ID_BMS_CODE = 200,   /*!<(200~214) BMS编码 (15) */
	PAR_ID_BMS_YEAR = 215,   /*!<(215) BMS生产日期-年[-2000] */
	PAR_ID_BMS_MONTH     ,   /*!<(216) BMS生产日期-月 */
	PAR_ID_BMS_DAY       ,   /*!<(217) BMS生产日期-日 */
	PAR_ID_SN_CODE       ,   /*!<(218~232) SN 编码 (15) */
	PAR_ID_PACK_YEAR =233,   /*!<(233) PACK生产日期-年[-2000] */
	PAR_ID_PACK_MONTH    ,   /*!<(234) PACK生产日期-月 */
	PAR_ID_PACK_DAY      ,   /*!<(235) PACK生产日期-日 */
	PAR_ID_MFT_CODE      ,   /*!<(236~250) 厂家代号 (15)*/
	PAR_ID_PCS_CAN_TYPE = 251 ,   /*!<(251) PCS协议类型 */ 
	PAR_ID_BLC_MODE      ,   /*!<(252) 均衡模式 */
	PAR_ID_PCS_RS485_TYPE ,  /*!<253) RS485协议选择 */
    PAR_ID_SELF_ADDR     ,   /*!<(254) 本机地址 */
	PAR_ID_FUNC_CFG      ,   /*!<(255) 功能配置 */
	PAR_ID_SOC_CFG       ,   /*!<(256) SOC功能配置 */
	PAR_ID_WIFI_CYCLE    ,   /*!<(266) wifi主动上报周期 */
	PAR_ID_WIFI_REP_EN   ,   /*!<(267) wifi主动上报使能 */
	
	PAR_ID_STD_CAP = 260 ,   /*!<(260) 标称容量 [X100]Ah */
	PAR_ID_FULL_CAP      ,   /*!<(261) 满充容量 [X100]Ah */
	PAR_ID_REAL_CAP      ,   /*!<(262) 剩余容量 [X100]Ah */
	PAR_ID_RSOC          ,   /*!<(263) 实际SOC值 [0.01%]*/
	PAR_ID_CYCLE         ,   /*!<(264) 循环次数 */
	PAR_ID_SOH           ,   /*!<(265) SOH [1] */
	PAR_ID_ACC_CHG_AH_H  ,   /*!<(266) 累计充电AH数[0.1A]*/
	PAR_ID_ACC_CHG_AH_L  ,   /*!<(267) 累计充电AH数[0.1A]*/
	PAR_ID_ACC_DSG_AH_H  ,   /*!<(268) 累计充电AH数[0.1A]*/
	PAR_ID_ACC_DSG_AH_L  ,   /*!<(269) 累计充电AH数[0.1A]*/
	PAR_ID_CYCLE_COEFF   ,   /*!<(270) 循环系数 */
	PAR_ID_IDE_SLP_DLY   ,   /*!<(271) 待机休眠延时 [min] */
	PAR_ID_IDE_SLP_VOLT  ,   /*!<(272) 待机休眠电压 [mV] */
	PAR_ID_BATT_TYPE     ,   /*!<(273) 电池类型 */
	PAR_ID_BATT_MFT      ,   /*!<(274) 电池厂家 */
	PAR_ID_DAMP_FACTOR   ,   /*!<(275) 循环衰减系数[次] */
	PAR_ID_BATT_SELF_POW ,   /*!<(276) 自放电系数 */
	PAR_ID_BLC_VOLT      ,   /*!<(277) 均衡开启电压 [mV] */
	PAR_ID_BLC_VDIFF     ,   /*!<(278) 均衡开启压差 [mV] */
	PAR_ID_HOT_START_TEMP,   /*!<(279) 加热开启温度 [-50 , X1] */
	PAR_ID_HOT_STOP_TEMP ,   /*!<(280) 加热停止温度 [-50 , X1] */
	PAR_ID_FAN_START_TEMP,   /*!<(281) 风扇开启温度 [-50 , X1] */
	PAR_ID_FAN_STOP_TEMP ,   /*!<(282) 风扇停止温度 [-50 , X1] */
	PAR_ID_FULL_CHG_VOLT ,   /*!<(283) 满充校准电压 [X0.01]V*/
	PAR_ID_FULL_CHG_CURR ,   /*!<(284) 满充校准电流 [X0.01]A */
	PAR_ID_CHG_VOLT      ,   /*!<(285) 充电电压 */
	PAR_ID_WIFI_ADDR     ,   /*!<(286~288) WIFI地址 */
	PAR_ID_MAC_ADDR      ,   /*!<(289~191) MAC地址 */
	PAR_ID_IP_PORT       ,   /*!<(291~192) 网络端口 */
	PAR_ID_SUB_CODE      ,   /*!<(293~194) 字码掩码 */
	PAR_ID_DNS_CODE      ,   /*!<(295~196) 域名 */
    PAR_ID_SOH_ST_CYCLE  ,   /*!<(295) 开始计算SOH的值 */
	PAR_ID_RESET_FLAG    ,   /*!<(296) 复位命令 */
	PAR_ID_SC_PRP_TIMES  ,   /*!<(297) 短路保护次数 */
	PAR_ID_OCC_PRP_TIMES  ,   /*!<(298) 充电过流保护次数 */
	PAR_ID_OCD_PRP_TIMES  ,   /*!<(299) 放电过流保护次数 */
	PAR_ID_COV_PRP_TIMES  ,   /*!<(300) 单体过压保护次数 */
	PAR_ID_CUV_PRP_TIMES  ,   /*!<(301) 单体欠压保护次数 */
	PAR_ID_BOV_PRP_TIMES  ,   /*!<(302) 总压过压保护次数 */
	PAR_ID_BUV_PRP_TIMES  ,   /*!<(303) 总压欠压保护次数 */
	PAR_ID_OTC_PRP_TIMES  ,   /*!<(304) 充电高温保护次数 */
	PAR_ID_UTC_PRP_TIMES  ,   /*!<(305) 充电低温保护次数 */
	PAR_ID_OTD_PRP_TIMES  ,   /*!<(306) 放电高温保护次数 */
	PAR_ID_UTD_PRP_TIMES  ,   /*!<(307) 放电低温保护次数 */
	PAR_ID_SOP_CV         ,   /*!<(308) 充电允许电压 */
	PAR_ID_SOP_DV         ,   /*!<(309) 放电允许电压 */
	PAR_ID_RESTART_TIMES  ,   /*!<(310) 重启次数 */
	PAR_ID_SOP_CC         ,   /*!<(311) 充电允许电流 */
	PAR_ID_SOP_DC         ,   /*!<(312) 放电允许电流 */
	PAR_ID_IDE_SLP_CURR   ,   /*!<(313) 待机休眠电流 */
	PAR_ID_IDE_SC_CURR    ,   /*!<(314) 短路电流 */
	PAR_ID_IDE_SC_DLY     ,   /*!<(315) 短路延时 */
	PAR_ID_IDE_SLEEP_DLY  ,   /*!<(316) 静态待机休眠延时 */	
	
	PAR_ID_FCHG_RECV_SOC  ,   
	PAR_ID_IDE_SLEEP_DELAY,
	
	PAR_ID_BUF_SIZE = 512 ,   /* 参数缓冲区大小 */
};

/* Variables -----------------------------------------------------------------*/

/*******************************************************************************
 * public API List
 ******************************************************************************/
void param_init(void);
uint16_t param_get_data(uint16_t par_id);
uint8_t param_set_data(uint16_t par_id , uint16_t set_val);
uint8_t param_set_multi_data(uint16_t start_addr , uint16_t num ,uint16_t *wr_buf);
uint8_t param_get_multi_data(uint16_t start_addr , uint16_t num ,uint16_t *rd_buf);
float param_convert_float(uint8_t type , uint16_t data_val);
uint16_t param_convert_u16(uint8_t type ,float data_val);
void param_factory_setting(void);
void param_valid_check(uint8_t cmd);
void param_save_all(void);
void param_set_cell_num(uint8_t cell_num);
void param_save_use_param(void);
uint8_t param_get_bit_val(uint16_t par_id , uint8_t bits_pos ,uint16_t *val);
uint8_t param_get_2bits_val(uint16_t par_id , uint8_t bits_pos ,uint16_t *val);
uint8_t param_get_4bits_val(uint16_t par_id , uint8_t bits_pos ,uint16_t *val);

/*! @} End of Interface API List */

#ifdef __cplusplus
}
#endif

#endif  /* #ifndef __PAR_ID_MNG_H_ */
/********** Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD *********/
